1. The Field of the Invention
Embodiments of the present invention relate to systems and methods for accessing a database. More particularly, embodiments of the present invention relate to systems and methods for dynamically generating form pages for accessing a database.
2. Background and Relevant Art
Computers have become an integral part of everyday life and are essential components of personal and professional life. One of the advantages afforded by computers is the ability to store and access a large amount of data. Some of the data, such as data found on the Internet, is accessible to anyone with a computer. Other data, such as data maintained by a business, is proprietary and only accessible to those that have the proper credentials.
In either case, the data is often stored using various types of data structures and one of the more common data structures used to store data is a database (dB). Generally stated, a database is a collection of information and at least some of the data stored in a database is related. In fact, a database is typically constructed to organize the data in a manner that makes the data accessible to users in a convenient manner. Because a database can store a large amount of information and because it is often necessary to perform various functions on the data stored in the database, the ability to quickly access the data is important. Thus, one goal of a database is to make the data stored therein available in a logical and convenient manner.
The tasks performed on a database include, for example, adding new data, deleting data, and updating or editing data. In addition to these tasks, a database should also be searchable. The ability to search a database can be one of its most used features. Searching a database enables a user to find related data or to find multiple instances of data that share common characteristics or attributes. Thus, the organization and structure of a database can have an impact on how easily the data can be accessed.
One type of database in use today is a relational database. Data in a relational database is often stored in the form of tables, which are usually arranged in the form of rows and columns. Using these related tables, the data can be organized to establish relationships in the data. At the same time, the data can be accessed based on the same relationships.
The data in a relational database is often referred to as an object. The rows in a database table store the data for an object, and the columns in a database table represent the attributes of the object data. The attributes are also referred to as fields. When an object is accessed (e.g., added, edited, deleted, or searched), a form is typically used. A form, for example, is a graphical representation of the tables in the database. A form has fields (table columns) and data (table rows) displayed on it along with buttons that when invoked execute tasks on the object. Using a form, a user can add, edit, update, delete, and search the objects in the database. A form has the advantage of visually presenting the information in the database in a manner that makes accessing the database easier.
One of the problems with a database, however, is that the objects stored in a database are not identical. In other words, the form designed for one object may not be adequate for use with another object. The differences between objects effectively compels the creation of a new form needs for each object. When one considers that a database may contain hundreds or thousands of different objects, the task of creating the forms becomes rather difficult and costly. The problem becomes even more difficult because a form used to add an object, may not be the same as the form used to delete or search for an object. In other words, more than one form needs to be created for each object.
If a database has, for example, five different forms (insert form, delete form, add form, search form, and relate form) for each object, it becomes clear that there is a need for 500 forms when the database contains 100 unique objects. While the creation of the forms may be accomplished over time, it is clear that the creation of forms is not trivial. Further, problems begin to appear when the objects' attributes change, due to a business requirement change, and require a corresponding change in the forms. Because even a small change can have a substantial impact on other aspects of a database, typical changes are proposed, approved, and tested before being implemented. In other words, improvements to a database can result in lots of changes and has a corresponding cost in terms of time, database maintenance, money, and subsequent worker productivity.